From: Jimi Xenidis Date: Fri, 15 Sep 2006 22:20:55 +0000 (-0400) Subject: [POWERPC][XEN] Add newlines on multiline output and dump SLB on SLB errors X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15658^2~56 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=bf31d9ab245fc31fc1691b35cb80682c2e18cabd;p=xen.git [POWERPC][XEN] Add newlines on multiline output and dump SLB on SLB errors Signed-off-by: Jimi Xenidis Signed-off-by: Hollis Blanchard --- diff --git a/xen/arch/powerpc/powerpc64/ppc970_machinecheck.c b/xen/arch/powerpc/powerpc64/ppc970_machinecheck.c index 67cf5d0b71..efd32459ea 100644 --- a/xen/arch/powerpc/powerpc64/ppc970_machinecheck.c +++ b/xen/arch/powerpc/powerpc64/ppc970_machinecheck.c @@ -56,61 +56,65 @@ int cpu_machinecheck(struct cpu_user_regs *regs) printk("SRR1: 0x%016lx\n", regs->msr); if (regs->msr & MCK_SRR1_INSN_FETCH_UNIT) - printk("42: Exception caused by Instruction Fetch Unit (IFU) " - "detection of a hardware uncorrectable error (UE).\n"); + printk("42: Exception caused by Instruction Fetch Unit (IFU)\n" + " detection of a hardware uncorrectable error (UE).\n"); if (regs->msr & MCK_SRR1_LOAD_STORE) - printk("43: Exception caused by load/store detection of error " - "(see DSISR)\n"); + printk("43: Exception caused by load/store detection of error\n" + " (see DSISR)\n"); switch (regs->msr & MCK_SRR1_CAUSE_MASK) { + case 0: + printk("0b00: Likely caused by an asynchronous machine check,\n" + "see SCOM Asynchronous Machine Check Register\n"); + break; case MCK_SRR1_CAUSE_SLB_PAR: - printk("0b01: Exception caused by an SLB parity error detected " - "while translating an instruction fetch address.\n"); + printk("0b01: Exception caused by an SLB parity error detected\n" + " while translating an instruction fetch address.\n"); break; case MCK_SRR1_CAUSE_TLB_PAR: - printk("0b10: Exception caused by a TLB parity error detected " - "while translating an instruction fetch address.\n"); + printk("0b10: Exception caused by a TLB parity error detected\n" + " while translating an instruction fetch address.\n"); break; case MCK_SRR1_CAUSE_UE: - printk("0b11: Exception caused by a hardware uncorrectable " - "error (UE) detected while doing a reload of an " - "instruction-fetch TLB tablewalk.\n"); - break; - default: + printk("0b11: Exception caused by a hardware uncorrectable\n" + " error (UE) detected while doing a reload of an\n" + " instruction-fetch TLB tablewalk.\n"); break; } - printk("\nDSIDR: 0x%08x\n", dsisr); + printk("\nDSISR: 0x%08x\n", dsisr); if (dsisr & MCK_DSISR_UE) - printk("16: Exception caused by a UE deferred error " - "(DAR is undefined).\n"); + printk("16: Exception caused by a UE deferred error\n" + " (DAR is undefined).\n"); if (dsisr & MCK_DSISR_UE_TABLE_WALK) - printk("17: Exception caused by a UE deferred error " - "during a tablewalk (D-side).\n"); + printk("17: Exception caused by a UE deferred error\n" + " during a tablewalk (D-side).\n"); if (dsisr & MCK_DSISR_L1_DCACHE_PAR) - printk("18: Exception was caused by a software recoverable " - "parity error in the L1 D-cache.\n"); + printk("18: Exception was caused by a software recoverable\n" + " parity error in the L1 D-cache.\n"); if (dsisr & MCK_DSISR_L1_DCACHE_TAG_PAR) - printk("19: Exception was caused by a software recoverable " - "parity error in the L1 D-cache tag.\n"); + printk("19: Exception was caused by a software recoverable\n" + " parity error in the L1 D-cache tag.\n"); if (dsisr & MCK_DSISR_D_ERAT_PAR) - printk("20: Exception was caused by a software recoverable parity " - "error in the D-ERAT.\n"); + printk("20: Exception was caused by a software recoverable parity\n" + " error in the D-ERAT.\n"); if (dsisr & MCK_DSISR_TLB_PAR) - printk("21: Exception was caused by a software recoverable parity " - "error in the TLB.\n"); + printk("21: Exception was caused by a software recoverable parity\n" + " error in the TLB.\n"); - if (dsisr & MCK_DSISR_SLB_PAR) - printk("23: Exception was caused by an SLB parity error (may not be " - "recoverable). This condition could occur if the " - "effective segment ID (ESID) fields of two or more SLB " - "entries contain the same value."); + if (dsisr & MCK_DSISR_SLB_PAR) { + printk("23: Exception was caused by an SLB parity error (may not be\n" + " recoverable). This condition could occur if the\n" + " effective segment ID (ESID) fields of two or more SLB\n" + " entries contain the same value.\n"); + dump_segments(0); + } return 0; /* for now lets not recover; */ }